
# 基本比较、逻辑运算、数学运算符
compare_logic_operators = ['=', '!=', '<>', '<', '<=', '>', '>=', "||", "&&", "!", ":=", ">>", '+', '-', '*', "|", '/', '%',  'AND', 'OR', 'NOT', 'IS']

# 数学相关运算符和函数
math_operators_functions = ["RAND()", "PI()",'ABS()', 'CEIL()', 'CEILING()', 'FLOOR()', 'ROUND()', 'TRUNCATE()', 'MOD',"SQRT()", "LN()", "LOG()","X()", "Y()","FORMAT()",]

# 字符串处理函数和模式匹配
string_pattern_functions = ['CONCAT()', 'CONCAT_WS()', 'LENGTH()', 'CHAR_LENGTH()','CHARSET()', 'LOWER()', 'UPPER()', 'TRIM()', 'LPAD()', 'RPAD()', 'REPLACE()', 'SUBSTR()', 'SUBSTRING()', 'SUBSTRING_INDEX()', 'LOCATE()', 'INSTR()', 'LIKE', 'NOT LIKE', 'REGEXP', 'NOT REGEXP', 'LEFT()', 'RIGHT()', 'MID()', 'CHAR()',"POSITION()","LCASE()"]

# 日期和时间处理函数
datetime_functions = ['CURDATE()', "INTERVAL()", 'NOW()', 'CURRENT_DATE', 'CURRENT_TIMESTAMP', 'SYSDATE()', 'UNIX_TIMESTAMP()', 'FROM_UNIXTIME()', 'STR_TO_DATE()', 'DATE_FORMAT()', 'DATE_ADD()', 'DATE_SUB()', 'DATEDIFF()', 'TIMESTAMPDIFF()', 'ADDDATE()', 'ADDTIME()', 'TIMEDIFF()', 'YEAR()', 'MONTH()', 'DAY()', 'HOUR()', 'MINUTE()', 'SECOND()', 'DAYOFWEEK()', 'DAYOFMONTH()', 'DAYOFYEAR()', 'TO_DAYS()', 'DATE()', 'TIME()', 'TIMESTAMP()', 'WEEK()', "EXTRACT()","QUARTER()","TIME_TO_SEC()","TIME_FORMAT()","PERIOD_DIFF()","MAKEDATE()", "TO_CHAR()"]

# 数据聚合函数
aggregate_functions = ['COUNT()', 'SUM()', 'AVG()', 'MIN()', 'MAX()', 'GROUP_CONCAT()', 'ANY_VALUE()']

# 条件判断和数据类型处理
conditional_type_functions = ['CASE', 'IF()', 'IFNULL()', 'COALESCE()', 'NULLIF()', 'CAST()', 'CONVERT()', 'BINARY', 'ISNULL()',"IN()", "BETWEEN"]

# 加密、编码函数
encryption_functions = ["MD5()", "AES_ENCRYPT()", "AES_DECRYPT()","TO_BASE64()", "FROM_BASE64()","DECODE()"]

# 其他杂项函数
miscellaneous_functions = [ "VALUES()",    "INSERT()",  "USER()", "DATABASE()", "VERSION()", "JSON_EXTRACT()", "JSON_CONTAINS_PATH()", "JSON_UNQUOTE()",  "PASSWORD()", "SOUNDEX()",  "DEFAULT()",   "SUBTIME()", "UUID()",  "FIND_IN_SET()"]



funcs_classes_dict = {
  "compare_logic_operators": ['=', '!=', '<>', '<', '<=', '>', '>=', "||", "&&", "!", ":=", ">>", '+', '-', '*', "|", '/', '%',  'AND', 'OR', 'NOT', 'IS'],
  "math_operators_functions": ["RAND()", "PI()",'ABS()', 'CEIL()', 'CEILING()', 'FLOOR()', 'ROUND()', 'TRUNCATE()', 'MOD',"SQRT()", "LN()", "LOG()","X()", "Y()","FORMAT()",],
  "string_pattern_functions": ['CONCAT()', 'CONCAT_WS()', 'LENGTH()', 'CHAR_LENGTH()','CHARSET()', 'LOWER()', 'UPPER()', 'TRIM()', 'LPAD()', 'RPAD()', 'REPLACE()', 'SUBSTR()', 'SUBSTRING()', 'SUBSTRING_INDEX()', 'LOCATE()', 'INSTR()', 'LIKE', 'NOT LIKE', 'REGEXP', 'NOT REGEXP', 'LEFT()', 'RIGHT()', 'MID()', 'CHAR()',"POSITION()","LCASE()"],
  "datetime_functions": ['CURDATE()', 'NOW()', "INTERVAL()",'CURRENT_DATE', 'CURRENT_TIMESTAMP', 'SYSDATE()', 'UNIX_TIMESTAMP()', 'FROM_UNIXTIME()', 'STR_TO_DATE()', 'DATE_FORMAT()', 'DATE_ADD()', 'DATE_SUB()', 'DATEDIFF()', 'TIMESTAMPDIFF()', 'ADDDATE()', 'ADDTIME()', 'TIMEDIFF()', 'YEAR()', 'MONTH()', 'DAY()', 'HOUR()', 'MINUTE()', 'SECOND()', 'DAYOFWEEK()', 'DAYOFMONTH()', 'DAYOFYEAR()', 'TO_DAYS()', 'DATE()', 'TIME()', 'TIMESTAMP()', 'WEEK()', "EXTRACT()","QUARTER()","TIME_TO_SEC()","TIME_FORMAT()","PERIOD_DIFF()","MAKEDATE()","TO_CHAR()"],
  "aggregate_functions": ['COUNT()', 'SUM()', 'AVG()', 'MIN()', 'MAX()', 'GROUP_CONCAT()', 'ANY_VALUE()'],
  "conditional_type_functions": ['CASE', 'IF()', 'IFNULL()', 'COALESCE()', 'NULLIF()', 'CAST()', 'CONVERT()', 'BINARY', 'ISNULL()',"IN()", "BETWEEN"],
  "encryption_functions": ["MD5()", "AES_ENCRYPT()", "AES_DECRYPT()","TO_BASE64()", "FROM_BASE64()","DECODE()"],
  "miscellaneous_functions": [ "VALUES()", "INSERT()",  "USER()", "DATABASE()", "VERSION()", "JSON_EXTRACT()", "JSON_CONTAINS_PATH()", "JSON_UNQUOTE()",  "PASSWORD()", "SOUNDEX()",  "DEFAULT()",   "SUBTIME()", "UUID()",  "FIND_IN_SET()"]
}


funcs_classes_mean = {
  "compare_logic_operators": "基本比较和逻辑运算符",
  "math_operators_functions": "数学相关运算符和函数",
  "string_pattern_functions": "字符串处理函数和模式匹配",
  "datetime_functions": "日期和时间处理函数",
  "aggregate_functions":"数据聚合函数",
  "conditional_type_functions": "条件判断和数据类型处理",
  "encryption_functions": "加密、编码函数",
  "miscellaneous_functions":"其他杂项函数"
}
